<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>返回数组中指定元素的下标</title>
</head>

<body>
    <script>
        // 查找数组中元素d返回其对应的所有索引的下标
        function findall(a, x) {
            var results = [],
                len = a.length,
                pos = 0;
            while (pos < len) {
                pos = a.indexOf(x, pos);
                if (pos === -1) { //未找到就退出循环完成搜索
                    break;
                }
                results.push(pos); // 找到就存储索引
                pos += 1; // 并从下个位置开始搜索
            }
            return results;
        }
        var arr = ['a', 'b', 'd', 'd', 'c', 'd', 'd'];
        document.write(findall(arr, 'd')) // 返回d元素的下标[2,3,5,6]

        //  找到元素d出现的次数
        function count(arr, item) {
            var number = 0;
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] == item) {
                    number++;
                }
            }
            return number;
        }
        document.write('</br>' + count(arr, 'd')) // 4
    </script>
</body>

</html>